/**
 * 描述: 更改首页banner状态
 * 版权: Copyright (c) 2019
 * 公司: 深圳市网商天下科技开发有限公司
 * 作者: 许堉颖
 * 版本: 1.0.0
 * 创建时间: 2019/5/7 10:21
 */

const utils = require('../../utils.js');
// 创建返回结果
const resultConstructor = utils.resultConstructor;

/**
 * 修改banner状态
 * @param promise 参数
 */
module.exports = async function updateBannerStatus(params) {
  // 获取数据库链接
  const db = utils.getDatabase();
  // 数据库操作
  const database = db.collection('rc_homepage_banner');

  // 获取启用状态的轮播图
  let enableBannerList = await database.where({status: 1}).get().then(res=>{
    return res.data;
  });
  console.log(enableBannerList);
  if (enableBannerList.length === 1 && params['status']===0) {
    return {
      code: -20000,
      errMsg: '至少要保留一张轮播图，请先启用其他轮播图~'
    }
  }
  if (enableBannerList.length >= 5 && params['status'] === 1){
    return  {
      code: -20001,
      errMsg: '启用中的轮播图数量达到上限(5)，请先禁用其他轮播图~'
    }
  }

  // 校验参数
  const checkParamsResult = checkParams(params);
  // 校验结果失败返回错误信息
  if (!checkParamsResult.status) {
    return checkParamsResult.data;
  }
  checkParamsResult['data']['updateTime'] = db.serverDate();
  //执行数据库更新
  let resultPromise = database.doc(params['_id']).update({ data: checkParamsResult.data })
  // 生成返回值
  return resultConstructor(resultPromise);
}

/**
 * 检查参数
 * @param params 参数
 */
function checkParams(params) {
  // 获取请求参数类
  const request = new utils.RequestParams();
  // 状态
  request.put('status', params['status'], 0);

  return request.checkParamsResult(request);
}
